General Techniques for Automatic Program Optimization and Synthesis Through Theorem Provingl

نویسنده

  • Peter MADDEN
چکیده

We report on program optimization research within the proofs as programs paradigm. Firstly, we describe program optimization by the transformation of program synthesis proofs (i.e. constructive existence proofs). Synthesis proofs which yield inefficient programs are transformed into analogous proofs which yield more efficient programs. The key to program optimization lies in the transformation of the various induction schemas employed in synthesis proofs. This belief stems from the extensive work of Boyer and Moore concerning the dualities between induction and recursion. A system has been implemented which optimizes simple recursive behaviour by automatically transforming the associated synthesis proof structures (notably, the forms of mathematical induction used to synthesize recursive program constucts). A second approach to program optimization does not concern how target synthesis proofs can be "mapped" from source proofs. Rather, the question is can we devise a means by which these proofs can be automatically constructed. without the use of a source proof (but only the source equational definitions). A promising strategy is to use the "proof planning" approach [Bundy et aI, 199J.b] to theorem proving and to employ meta-variables at the meta-level planning phase which allow the planning to proceed even though certain object-level objects are (partially) unknown (such a strategy being known as middle-out reasoning [Bundy et aI, 1990a]). Subsequent planning provides the necessary information which, together with the original definitional equations. will allow us to instantiate such meta-variables through higher-order unification procedures. The control provided by proof planning allows us to view program synthesis as verification together with MaR. This approach has already been investigated for the purposes of synthesizing tail-recursive programs from non-tail-recursive specifications [Hesketh et at, 1992], IThis research was supported by SERC grant GR/H/23610, and a SERC Postdoctoral Fellowshio to the author. as well as other forms of program optimization such as tupling transformations and deforestation [Madden et at, 1993a, Wiggins et at, 1991]. This research has direct applications regarding the improvement of the quality of software produced through automatic programming. In a broader sense, applications of formal methods in software engineering depend critically on the use of automated theorem provers to provide improved support for the development of safety critical systems. The development of correctness preserving program synthesis and opt imization systems will help provide such support. Subject area (key words): Automated Reasoning (program verification/synthesis/optimization), theorem provin~, formal methods, planning).

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Formal Methods for Automated Program Improvement

Systems supporting the manipulation of non-trivial program code are complex and are at best semi-automatic. However, formal methods, and in partieular theorem proving, are providing a growing foundation of techniques for automatie program development (synthesis, improvement, transformation and verification). In this paper we report on novel research concerning: (1) the exploitation of synthesis...

متن کامل

Automatic program synthesis via synthesis

Work on theorem-proving-based automatic program synthesis (see Lee, e t ai.,1 for example) has been neglected iately. In their 1971 paper, Manna and Waldinger8 covered one of the main reasons why-the difficulty of synthesizing program loops within the current state of the art of automatic theorem-proving.· However, there is a great deal of continuing work in theorem-proving, and it is important...

متن کامل

Optimizing Cost Function in Imperialist Competitive Algorithm for Path Coverage Problem in Software Testing

Search-based optimization methods have been used for software engineering activities such as software testing. In the field of software testing, search-based test data generation refers to application of meta-heuristic optimization methods to generate test data that cover the code space of a program. Automatic test data generation that can cover all the paths of software is known as a major cha...

متن کامل

The Comparison of Direct and Indirect Optimization Techniques in Equilibrium Analysis of Multibody Dynamic Systems

The present paper describes a set of procedures for the solution of nonlinear static-equilibrium problems in the complex multibody mechanical systems. To find the equilibrium position of the system, five optimization techniques are used to minimize the total potential energy of the system. Comparisons are made between these techniques. A computer program is developed to evaluate the equality co...

متن کامل

AMPHION: Automatic Programming for Scientific Subroutine Libraries

This paper describes AMPHION1, a knowledge-based software engineering (KBSE) system that guides a user in developing a formal specification of a problem and then implements this specification as a program consisting of calls to subroutines from a library. AMPHION is domain independent and is specialized to an application domain through a declarative domain theory. A user is guided in creating a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005